home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO002.dsk
/
SKETCH.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
4KB
|
161 lines
10 PRINT CHR$(27);: PRINT CHR$(17): REM 40 COL.
20 TEXT : HOME
30 V = 1: GOSUB 40:V = 24: GOSUB 40: GOTO 60
40 VTAB (V): HTAB (1): FOR X = 1 TO 39: PRINT "_";: NEXT
50 RETURN
60 VTAB (5): HTAB (7)
70 PRINT "[ THIS PROGRAM IS FREEWARE ]"
80 PRINT : PRINT : HTAB (4)
90 PRINT "YOU ARE FREE TO DISTRIBUTE COPIES"
100 PRINT : HTAB (8)
110 PRINT "BUT YOU MAY NOT SELL THEM."
120 VTAB (16): HTAB (11)
130 PRINT "THE FREEWARE PROJECT"
140 PRINT : HTAB (11)
150 PRINT "WALDEN SOFTWARE, INC."
160 PRINT : HTAB (12)
170 PRINT "(C) 1984, P. LUTUS"
180 FOR PAUSE = 0 TO 2500: NEXT
190 REM
200 REM SET THINGS UP
210 REM
220 D$ = CHR$(4)
230 ID = ( INT( PEEK(49048)/64))
240 HOME
250 HGR
260 C = 3
270 S = 10
280 XP = 1:YP = 0
290 ONERR GOTO 290
300 GOSUB 1090
310 OX = XP:OY = YP
320 GOSUB 1220
330 REM
340 REM PUT DOT ON SCREEN
350 REM
360 HCOLOR= 0
370 HPLOT 0,YP
380 A = PEEK(38) + PEEK(39) *256
390 A = A +(XP/7)
400 PT = PEEK(A)
410 HCOLOR= 3
420 HPLOT XP,YP
430 REM
440 REM WAIT FOR KEYPRESS
450 REM
460 K = PEEK(49152): IF K <127 THEN 460
470 POKE 49168,0
480 C$ = CHR$(K -128)
490 REM
500 REM USE ARROWS IF AVAIL.
510 REM
520 IF ASC(C$) = 8 THEN C$ = "J"
530 IF ASC(C$) = 21 THEN C$ = "K"
540 IF ASC(C$) = 10 THEN C$ = "M"
550 IF ASC(C$) = 11 THEN C$ = "I"
560 REM
570 REM REMOVE DOT
580 REM
590 POKE A,(PT)
600 REM
610 REM CARRY OUT COMMAND
620 REM
630 GOSUB 640: GOTO 360
640 IF C$ = "I" THEN YP = YP -S: GOTO 1090
650 IF C$ = "M" THEN YP = YP +S: GOTO 1090
660 IF C$ = "J" THEN XP = XP -S: GOTO 1090
670 IF C$ = "K" THEN XP = XP +S: GOTO 1090
680 IF C$ = "D" THEN HCOLOR= C: GOTO 1170
690 IF C$ = "U" THEN HCOLOR= 0: GOTO 1170
700 IF C$ = "S" THEN OX = XP:OY = YP: HCOLOR= C: GOTO 1170
710 IF C$ = "-" THEN 780: REM STEP
720 IF C$ = "C" THEN 820: REM COLOR
730 IF C$ = "F" THEN 860: REM FILE
740 IF C$ = "Q" THEN 990: REM QUIT
750 IF C$ = "E" THEN 1030: REM ERASE
760 IF C$ = "A" THEN 1350: REM ARC
770 RETURN
780 Q$ = "ENTER STEP SIZE (1-20):": GOSUB 1310
790 S = VAL(L$)
800 IF S <1 OR S >20 THEN 780
810 RETURN
820 Q$ = "ENTER COLOR (1-7):": GOSUB 1310
830 C = VAL(L$)
840 IF C <0 OR C >7 THEN 820
850 RETURN
860 Q$ = "(L)OAD OR (S)AVE IMAGE :": GOSUB 1310
870 C$ = LEFT$(L$,1)
880 IF C$ = "S" THEN 910
890 IF C$ = "L" THEN 950
900 RETURN
910 Q$ = "ENTER SAVE FILE NAME:": GOSUB 1310
920 IF L$ = "" THEN RETURN
930 PRINT D$;"BSAVE";L$;",A$2000,L$2000"
940 RETURN
950 Q$ = "ENTER LOAD FILE NAME:": GOSUB 1310
960 IF L$ = "" THEN RETURN
970 PRINT D$;"BLOAD";L$;",A$2000,L$2000"
980 RETURN
990 Q$ = "QUIT (YES/NO):": GOSUB 1310
1000 IF LEFT$(L$,1) < >"Y" THEN RETURN
1010 TEXT : HOME : PRINT CHR$(4);"-STARTUP"
1020 IF C$ < >"E" THEN RETURN
1030 Q$ = "ERASE SCREEN (YES/NO):": GOSUB 1310
1040 IF LEFT$(L$,1) < >"Y" THEN RETURN
1050 HGR : HCOLOR= C: RETURN
1060 REM
1070 REM CHECK: ON SCREEN?
1080 REM
1090 IF XP <1 THEN XP = 1
1100 IF XP >279 THEN XP = 279
1110 IF YP <0 THEN YP = 0
1120 IF YP >159 THEN YP = 159
1130 RETURN
1140 REM
1150 REM DRAW/UNDRAW LINE
1160 REM
1170 HPLOT OX,OY TO XP,YP:OX = XP:OY = YP
1180 RETURN
1190 REM
1200 REM PRINT MENU
1210 REM
1220 HOME
1230 VTAB (21)
1240 PRINT "[ FREEWARE SKETCH PAD (P. LUTUS) ]"
1250 IF ID = 2 THEN PRINT "MOVE WITH <CTRL-A>ARROW KEYS,(-)STEP"
1260 IF ID < >2 THEN PRINT "(I)UP,(J)LEFT,(K)RIGHT,(M)DOWN,(-)STEP"
1270 PRINT "(S)TART,(D)RAW,(U)NDRAW,(C)OLOR,(A)RC"
1280 PRINT "(E)RASE,(F)ILE TO DISK,(Q)UIT";
1290 VTAB (1)
1300 RETURN
1310 HOME : VTAB (21)
1320 PRINT Q$;
1330 INPUT "";L$
1340 GOTO 1220
1350 GOSUB 1390: GOTO 1220
1360 REM
1370 REM DRAW ARCS
1380 REM
1390 HOME : VTAB (21)
1400 F = 57.29577951
1410 ST = 1
1420 INPUT "ENTER ARC RADIUS:";L$
1430 IF L$ = "" THEN RETURN
1440 AR = VAL(L$)
1450 INPUT "ENTER ARC START ANGLE (0 = UP):";L$
1460 IF L$ = "" THEN RETURN
1470 SA = VAL(L$)
1480 INPUT "ENTER ARC LENGTH (360=FULL):";L$
1490 IF L$ = "" THEN RETURN
1500 SL = VAL(L$)
1510 INPUT "(D)RAW OR (U)NDRAW:";L$
1520 HCOLOR= C: IF L$ = "U" THEN HCOLOR= 0
1530 OX = XP:OY = YP
1540 FOR X = SA TO (SA +SL) STEP 5
1550 XP = ( SIN(X/F) *AR) +OX
1560 YP = -( COS(X/F) *AR) +OY
1570 IF ST THEN QX = XP:QY = YP:ST = 0
1580 HPLOT QX,QY TO XP,YP
1590 QX = XP:QY = YP: NEXT X
1600 XP = OX:YP = OY
1610 RETURN